Product
Socket Now Supports uv.lock Files
Socket now supports uv.lock files to ensure consistent, secure dependency resolution for Python projects and enhance supply chain security.
p-wait-for
Advanced tools
The p-wait-for npm package is a utility that allows you to wait for a condition to be met before proceeding with the execution of your code. It is particularly useful for scenarios where you need to poll for a certain state or condition to be true before continuing.
Basic Usage
This feature allows you to wait for a basic asynchronous condition to be met. The `pWaitFor` function takes a condition function that returns a promise, and it resolves when the condition returns true.
const pWaitFor = require('p-wait-for');
const condition = async () => {
// Some asynchronous condition
return await someAsyncCheck();
};
(async () => {
await pWaitFor(condition);
console.log('Condition met!');
})();
Timeout
This feature allows you to specify a timeout for the condition to be met. If the condition is not met within the specified timeout, an error is thrown.
const pWaitFor = require('p-wait-for');
const condition = async () => {
// Some asynchronous condition
return await someAsyncCheck();
};
(async () => {
try {
await pWaitFor(condition, { timeout: 5000 });
console.log('Condition met within timeout!');
} catch (error) {
console.error('Condition not met within timeout');
}
})();
Interval
This feature allows you to specify an interval at which the condition function is called. This can be useful to reduce the frequency of checks and avoid overwhelming the system.
const pWaitFor = require('p-wait-for');
const condition = async () => {
// Some asynchronous condition
return await someAsyncCheck();
};
(async () => {
await pWaitFor(condition, { interval: 1000 });
console.log('Condition met!');
})();
The await-poll package provides similar functionality by allowing you to poll for a condition to be met. It offers a simple API for waiting for a condition with customizable intervals and timeouts. Compared to p-wait-for, await-poll has a more straightforward API but may lack some of the advanced options.
The promise-poller package is another alternative that allows you to poll for a condition to be met. It provides more advanced options such as retries, delays, and custom error handling. Compared to p-wait-for, promise-poller offers more flexibility and customization options.
Wait for a condition to be true
Can be useful for polling.
$ npm install p-wait-for
import pWaitFor from 'p-wait-for';
import pathExists from 'path-exists';
await pWaitFor(() => pathExists('unicorn.png'));
console.log('Yay! The file now exists.');
Returns a Promise
that resolves when condition
returns true
. Rejects if condition
throws or returns a Promise
that rejects.
Type: Function
Expected to return Promise<boolean> | boolean
.
Type: object
Type: number
Default: 20
Number of milliseconds to wait before retrying condition
.
Type: number
Default: Infinity
Number of milliseconds to wait before automatically rejecting with a TimeoutError
.
Type: boolean
Default: true
Whether to run the check immediately rather than starting by waiting interval
milliseconds.
Useful for when the check, if run immediately, would likely return false
. In this scenario, set before
to false
.
Exposed for instance checking.
FAQs
Wait for a condition to be true
We found that p-wait-for demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
Socket now supports uv.lock files to ensure consistent, secure dependency resolution for Python projects and enhance supply chain security.
Research
Security News
Socket researchers have discovered multiple malicious npm packages targeting Solana private keys, abusing Gmail to exfiltrate the data and drain Solana wallets.
Security News
PEP 770 proposes adding SBOM support to Python packages to improve transparency and catch hidden non-Python dependencies that security tools often miss.